class A(object):
    # 定义一个类变量，初值是10
    class_var = 10
    print(id(class_var))

    def foo(self):
        print('在类中访问类变量：A.class_var=', A.class_var)
        print('在类中访问实例变量： self.class_var=', self, self.class_var)

        # 改变实例变量的值
        self.class_var = 40
        print('修改后访问类变量：A.class_var=', A.class_var)
        print('修改后访问实例变量 self.class_var=', self, self.class_var)

        # 这里的class_var和函数外面的class_var不是同一个东西，这是一个局部变量
        class_var = 20
        print(id(class_var))
        print('class_var=', class_var)

        A.class_var = 1
        print('A.class_var=', A.class_var)
        print('class_var=', class_var)
        print('self.class_var=', self.class_var)


obj1 = A()
obj2 = A()
obj3 = A()
obj1.foo()
print(A.class_var)
print(obj1.class_var)
obj2.class_var = 2
print('-------------->')

print(obj2.class_var)
obj2.foo()

print(obj3.class_var)
# print(A.class_var)
